package JavaSEAdvance.day05_API;

/**
 * @author Xiao
 * @date 2021/7/21
 */
public class D506_FactorialDemo01 {
    /**
     * 不死神兔
     * 1   2   3   4   5   6   ……  20
     * 1   1   2   3   5   8   ……  sum     斐波那契数列：越往后，前一个数/后一个数的值越接近黄金分割比。
     * <p>
     * i1 = 1
     * i2 = 1
     * i3 = i1 + i2
     * i4 = i2 + i3
     * ……
     * i20 = i18 + i19
     */
    public static void main(String[] args) {
//        int sum = getSum(20);
//        System.out.println("sum:" + sum);
        System.out.println("--------");
        int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;
        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i - 1] + arr[i - 2];
        }
        System.out.println(arr[arr.length - 1]);
        System.out.println("--------");
//        System.out.println(getCount(20));
    }

    private static int getCount(int month) {
        if (month == 1 || month == 2) {
            return 1;
        }else {
            return getCount(month - 1) + getCount(month - 2);
        }
    }

    //这是一个错误的方法
    /*private static int getSum(int i) {
        if (i == 3) {
            return 2;
        } else {
            //StackOverflowError → 当i == 4时，i - 2 == 2
            // （i == 2 → 与出口条件不符！！！）
            return getSum(i - 1) + getSum(i - 2);
        }
    }*/
}